import type { RouteMeta } from 'vue-router';
import { BasicPageParams } from "../../model/baseModel"

export interface RouteItem {
  path: string;
  component: any;
  meta: RouteMeta;
  name?: string;
  alias?: string | string[];
  redirect?: string;
  caseSensitive?: boolean;
  children?: RouteItem[];
}

/**
 * @description: Get menu return value
 */
export type getMenuListResultModel = RouteItem[];

/**
 * 系统菜单 数据模型
 */
export interface MenuVOModel {
    // 菜单唯一标识
    menuId?: string
    // 菜单唯一标识集合
    menuIds?: string[]
    // 父级菜单
    parentId?: string
    // 祖级列表
    ancestors?: string
    // 标题
    title?: string
    // 编号
    code?: string
    // 请求路径
    path?: string
    // 组件地址
    component?: string
    // 图标
    icon?: string
    // 排序
    orderNum?: number
    // 菜单类型：0-模块；1-菜单；2-按钮
    menuType?: number
    // 菜单状态：0-正常；1-禁用
    state?: number
}

/**
 * 系统菜单查询 数据模型
 */
export interface MenuSearchModel extends BasicPageParams{
    // 父级菜单
    parentId?: string
    // 祖级列表
    ancestors?: string
    // 标题
    title?: string
    // 编号
    code?: string
    // 请求路径
    path?: string
    // 组件地址
    component?: string
    // 图标
    icon?: string
}